Skip to content

Comments

SSF-131/138 Strict Mode#105

Open
Juwang110 wants to merge 21 commits intomainfrom
jw/SSF-131-strict-mode
Open

SSF-131/138 Strict Mode#105
Juwang110 wants to merge 21 commits intomainfrom
jw/SSF-131-strict-mode

Conversation

@Juwang110
Copy link

ℹ️ Issue

Closes https://vidushimisra.atlassian.net/jira/software/projects/SSF/boards/1?selectedIssue=SSF-131 and
https://vidushimisra.atlassian.net/jira/software/projects/SSF/boards/1?selectedIssue=SSF-138

📝 Description

This PR enables typescript strict mode in the backend which enables the compiler to be a lot more picky and strict with types, null and undefined checks, etc. The PR includes changes to make our backend adhere with all the rules that strict mode enforces. This involved work making entity fields optional or required, and also handling null/undefined errors and return values.

✔️ Verification

I made sure all the backend tests pass and npx nx serve backend properly runs without error.

🏕️ (Optional) Future Work / Notes

N/A

@dburkhart07 dburkhart07 self-requested a review February 15, 2026 21:15
@sam-schu sam-schu self-requested a review February 15, 2026 21:56
Copy link

@dburkhart07 dburkhart07 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some initial changes

Copy link
Collaborator

@sam-schu sam-schu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First half of review

@Column({ name: 'fulfilled_at', type: 'timestamp' })
fulfilledAt: Date;
@Column({ name: 'fulfilled_at', type: 'timestamp', nullable: true })
fulfilledAt?: Date | null;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can these fields actually be undefined or null, or does it always come back one way or the other if the database column is null?

Copy link
Author

@Juwang110 Juwang110 Feb 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah good point, the database always returns null I'm pretty sure. I think I can replace all these with ! since it will either be the value or null

@IsNotEmpty({ each: true })
@MaxLength(255, { each: true })
restrictions?: string[];
restrictions!: string[];
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What was the reason for this change?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct me if I'm wrong but I think that this can not be undefined? Based on the pantry application form there need to be some selection of restrictions and in the DB restrictions is not nullable as well.

image

"compilerOptions": {
"esModuleInterop": true
"esModuleInterop": true,
"strict": true
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

very epic and awesome line of code right here that I am very excited for !!

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see any package.json changes?

@Juwang110 Juwang110 requested a review from sam-schu February 20, 2026 15:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants